#include <iostream>
namespace NEW {
    struct X{
        int age = 1;
    };
    void printX(X x) {
        std::cout << "x's age = " << x.age << "\n";
    }
}
// Argument Dependent Lookup: 当printX开始执行的时候runtime不仅会在当前的context以及global context中寻找实现，它还将寻找参数x1的作用域
// 这个作用域中含有一个printX的实现
int main(int argc, char const *argv[])
{
    // x's age = 100
    NEW::X x1;
    x1.age = 100;
    printX(x1);
    NEW::printX(x1);
    return 0;
}
